package com.ruoyi.material.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 出库对象 outbound_order
 * 
 * @author ruoyi
 * @date 2022-08-25
 */
public class OutboundOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 出库单号 */
    @Excel(name = "出库单号")
    private String outboundNo;

    /** 出库类型 */
    @Excel(name = "出库类型")
    private String outboundType;

    /** 生产订单编号 */
    @Excel(name = "生产订单编号")
    private String orderNo;

    /** 关联项目 */
    @Excel(name = "关联项目")
    private String projectNo;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 仓库区域 */
    @Excel(name = "仓库区域")
    private String warehouseArea;

    /** 出库主题 */
    @Excel(name = "出库主题")
    private String outboundTheme;

    /** 出库人员 */
    @Excel(name = "出库人员")
    private String outboundPerson;

    /** 出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outboundTime;

    /** 领料人员 */
    @Excel(name = "领料人员")
    private String pickingPerson;

    /** 状态（0未出库，1已出库） */
    @Excel(name = "状态", readConverterExp = "0=未出库，1已出库")
    private String status;

    /** 备注 */
    @Excel(name = "备注")
    private String comment;

    /** 出料数量 */
    @Excel(name = "出料数量")
    private String outBoundCount;

    public String getOutBoundCount() {
        return outBoundCount;
    }

    public void setOutBoundCount(String outBoundCount) {
        this.outBoundCount = outBoundCount;
    }

    public String getMaterialType() {
        return materialType;
    }

    public void setMaterialType(String materialType) {
        this.materialType = materialType;
    }

    /** 物料类别 */
    @Excel(name = "物料类别")
    private String materialType;

    /** 物料信息信息 */
    private List<MaterialInfo> materialInfoList;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setOutboundNo(String outboundNo) 
    {
        this.outboundNo = outboundNo;
    }

    public String getOutboundNo() 
    {
        return outboundNo;
    }
    public void setOutboundType(String outboundType) 
    {
        this.outboundType = outboundType;
    }

    public String getOutboundType() 
    {
        return outboundType;
    }
    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }
    public void setProjectNo(String projectNo) 
    {
        this.projectNo = projectNo;
    }

    public String getProjectNo() 
    {
        return projectNo;
    }
    public void setWarehouseName(String warehouseName) 
    {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName() 
    {
        return warehouseName;
    }
    public void setWarehouseArea(String warehouseArea) 
    {
        this.warehouseArea = warehouseArea;
    }

    public String getWarehouseArea() 
    {
        return warehouseArea;
    }
    public void setOutboundTheme(String outboundTheme) 
    {
        this.outboundTheme = outboundTheme;
    }

    public String getOutboundTheme() 
    {
        return outboundTheme;
    }
    public void setOutboundPerson(String outboundPerson) 
    {
        this.outboundPerson = outboundPerson;
    }

    public String getOutboundPerson() 
    {
        return outboundPerson;
    }
    public void setOutboundTime(Date outboundTime) 
    {
        this.outboundTime = outboundTime;
    }

    public Date getOutboundTime() 
    {
        return outboundTime;
    }
    public void setPickingPerson(String pickingPerson) 
    {
        this.pickingPerson = pickingPerson;
    }

    public String getPickingPerson() 
    {
        return pickingPerson;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setComment(String comment) 
    {
        this.comment = comment;
    }

    public String getComment() 
    {
        return comment;
    }

    public List<MaterialInfo> getMaterialInfoList()
    {
        return materialInfoList;
    }

    public void setMaterialInfoList(List<MaterialInfo> materialInfoList)
    {
        this.materialInfoList = materialInfoList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("outboundNo", getOutboundNo())
            .append("outboundType", getOutboundType())
            .append("orderNo", getOrderNo())
            .append("projectNo", getProjectNo())
            .append("warehouseName", getWarehouseName())
            .append("warehouseArea", getWarehouseArea())
            .append("outboundTheme", getOutboundTheme())
            .append("outboundPerson", getOutboundPerson())
            .append("outboundTime", getOutboundTime())
            .append("pickingPerson", getPickingPerson())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("status", getStatus())
            .append("comment", getComment())
            .append("materialInfoList", getMaterialInfoList())
            .toString();
    }
}
